package battleco

import (
	"wails/schema/enums/battleenum"
)

// C战利品
// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品
type C战利品 struct {
	// @alias 验证器
	Y验证器 map[string]string `link:"验证器"`
}

// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品_效果
type C战利品_效果 struct {
	C战利品

	// @alias 效果
	X效果 string `link:"效果"`
}

// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品_生成
type C战利品_生成 struct {
	C战利品

	// @alias 生成位置
	S生成位置 battleenum.EffectLocation

	// @alias 生成所有者
	S生成所有者 battleenum.EffectPlayer

	// @alias 生成范围
	S生成范围 float64
}

// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品_物品
type C战利品_物品 struct {
	C战利品_生成

	// 分类
	ClassArray map[string]string

	// 最大等级
	MaxLevel float64

	// 最小等级
	MinLevel float64
}

// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品_资源
type C战利品_资源 struct {
	C战利品

	// @alias 资源
	Z资源 map[battleenum.Z游戏资源类型]float64
}

// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品_集合
type C战利品_瀑布集合 struct {
	C战利品

	// @alias 子数组
	Z子数组 []*S瀑布算法_子项

	// @alias 最大计数
	Z最大计数 int32

	// @alias 最小计数
	Z最小计数 int32
}

// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品_圆桌集合
type C战利品_圆桌集合 struct {
	C战利品

	// @alias 子数组
	Z子数组 []*S圆桌算法_子项
}

// @schema_export --ident=schema --json --config=战利品
// @schema_go
// @cache_ts
// @alias 战利品_单位
type C战利品_单位 struct {
	C战利品_生成

	// @alias 单位
	D单位 string `link:"单位"`
}

type S瀑布算法_子项 struct {
	// @alias float64
	J几率 float64

	// @alias 战利品
	Z战利品 string `link:"战利品"`

	// @alias 最大计数
	// 只能作用于允许数量的掉落，例如带数量的物品
	Z最大计数 int

	// @alias 最小计数
	// 只能作用于允许数量的掉落，例如带数量的物品
	Z最小计数 int
}

type S圆桌算法_子项 struct {
	// @alias 权重
	Q权重 int

	// @alias 战利品
	Z战利品 string `link:"战利品"`

	// @alias 最大计数
	// 用于一组道具的情况，避免不同数量的道具需要新建配置的情况
	// 只能作用于允许数量的掉落，例如带数量的物品
	Z最大计数 int

	// @alias 最小计数
	// 用于一组道具的情况，避免不同数量的道具需要新建配置的情况
	// 只能作用于允许数量的掉落，例如带数量的物品
	Z最小计数 int
}
